#ifndef DATA_LINK_H
#define DATA_LINK_H

#include <string>

namespace data {

	struct Link {
	public:
		Link(
			std::string partAId,
			std::string partBId ) :
			m_partAId( partAId ),
			m_partBId( partBId )
		{}

		Link( const Link& link ) :
			m_partAId( link.GetPartAId() ),
			m_partBId( link.GetPartBId() )
		{}

		inline const std::string GetPartAId() const { return m_partAId; }
		inline const std::string GetPartBId() const { return m_partBId; }

	private:
		std::string m_partAId;
		std::string m_partBId;
	};

	inline bool operator == ( const Link& a, const Link& b ) {
		if( a.GetPartAId() != b.GetPartAId() ) return false;
		if( a.GetPartBId() != b.GetPartBId() ) return false;
		return true;
	}

	inline bool operator != ( const Link& a, const Link& b ) {
		return !( a == b );
	}
}
#endif
